package artin.A3D7.main 
{
	import artin.A3D7.template.AlternativaTemplate;
	import alternativa.engine3d.materials.FillMaterial;
	import alternativa.engine3d.primitives.Plane;
	import alternativa.engine3d.controllers.SimpleObjectController;
	import flash.display.Sprite;
	import flash.events.Event;
	import artin.A3D7.template.AlternativaTemplate;
	
	/**
	 * Alternativa3D 7.7.0 模板demo
	 * @by ssnangua
	 */
	[SWF(backgroundColor="#000000", frameRate="100", width="800", height="600")]
	public class A3D7Test extends Sprite
	{
		public function A3D7Test():void
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		private function init(e:Event=null):void
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			
			// 创建模板（AlternativaTemplate）
			var scene:AlternativaTemplate = new AlternativaTemplate(this);
			
			// 创建材质（Material）
			var material:FillMaterial = new FillMaterial(0x666666,1,0,0x0);
			
			// 创建平面（Plane）
			var plane:Plane = new Plane(300,300,4,4);
			plane.setMaterialToAllFaces(material);
			scene.container.addChild(plane);
			
			// 调整摄像头
			// 设置控制器中的摄像头的位置，不能直接设置x、y、z值
			// 可以使用SimpleController.setObjectPosXYZ()方法
			scene.cameraController.setObjectPosXYZ(0,-500,500);
			scene.cameraController.lookAtXYZ(0, 0, 0);
			addChild(scene.camera.diagram);
			
			// 创建对象控制器
			// 拖动鼠标是旋转对象
			var objectController:SimpleObjectController = new SimpleObjectController(stage,plane,100);
			objectController.unbindAll();
			
			scene.onPreRender = function():void {
				objectController.update();
			};
			
			// 开始渲染
			scene.startRendering();
		}
	}
}